/**
*      author: Y_Yao
*      created: 2025-04-05 12:26:06
**/

#include<bits/stdc++.h>

#define int LL
using namespace std;
using LL = long long;
const LL LLINF = 9e18;
const int INF = 0x3f3f3f3f;
const int N = 1e6 + 7;
vector<int> primes;
bool st[N];
int n;

void solve()
{
    cin >> n;
    int mx = ceil(pow(n/2,1.0/3.0));
    // cout << mx << endl;
    for(int i = 2;i <= mx;i++)
    {
        if(!st[i]) primes.push_back(i);
        for(auto& e : primes)
        {
            if(i * e > mx) break;
            st[i * e] = true;
            if(i % e == 0) break;
        }
    }
    // for(auto& e : primes)
    // {
    //     cout << e << " ";
    // }
    // cout << endl;

    // cout << primes.size() << endl;
    int ans = 0;
    for(int i = 0,j = primes.size() - 1;i < primes.size();i++)
    {
        // for(int j = (int)primes.size() - 1;j >= 0 && i < j;j--)
        // {
        //     int a = primes[i];
        //     int b = primes[j];
        //     // cout << a << " " << b << endl;
        //     if(a * b * b * b <= n)
        //     {
        //         ans += (j - i);
        //         break;
        //     }
        // }
        while(j >= 0 && primes[i] * primes[j] * primes[j] * primes[j] > n)
        {
            j--;
        }
        if(i < j)
        {
            ans += j - i;
        }
    }
    cout << ans << endl;
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    int t = 1;
    // cin >> t;
    while(t--)
    {
        solve();
    }
    return 0;
}